Low-Code und Citizen Development: Eine mögliche Schlussfolgerung
Von den bisherigen Ausführungen ausgehend sollen in diesem Abschnitt verschiedene Formen der Zusammenarbeit als mögliche Abstufungen zwischen professionellem und Citizen Development in den Kontext von Low-Code eingeführt werden. Dazu sollen verschiedene Ansätze aus dem End-User-Development herangezogen werden. Entsprechend der Low-Code Association findet auf Low-Code-Plattformen zunächst Low-Code-Development statt. Je nach Funktionsumfang und Komplexität der genutzten Abstraktion des Programmiercodes ließen sich verschiedene Formen von Low-Code-Development skizzieren: Citizen Development, Collaboration, Co-Development und professionelles Development (siehe Abb.).
Wenn Citizen Development als eine Art der Anwendungskonfiguration verstanden wird, für die keine Programmierkenntnisse notwendig sind, stünde das Potenzial einer Plattform für Citizen Development/End-User Development
- in Zusammenhang mit der Höhe des Abstraktionsgrades der Programmiersprache, beziehungsweise damit, wie intuitiv das Programmiermodell gestaltet ist.
- Bedingt die Komplexitätsreduktion auch eine entsprechende Einschränkung der konfigurierbaren Funktionalitäten. Dies ist wiederum auf die potenziell in sich geschlossene Entwicklungsumgebung einer Low-Code-Plattform zurückzuführen. Im Umkehrschluss steigen mit den Anforderungen an eine geplante Anwendung auch die Kompetenzanforderungen an die entwickelnde Person. Softwareprogrammierung auch für Menschen ohne oder mit geringen Programmierkenntnissen bedeuetet in der Regel einen Kompromiss hinsichtlich des Funktionsumfangs und somit der Komplexität einer Anwendung. Anstelle also von einem vieldeutigen, teils idealisierten Konzept des Citizen Developments zu sprechen, schlagen wir vor, dies als eine von vier möglichen Stufen von Low-Code-Entwicklung zu definieren.
Die darauffolgende Stufe beschreibt einen kollaborativen Ansatz (Collaboration), in dem der:die Fachexpert:in weiterhin konfiguriert. Dabei wird sie:er jedoch entweder von einer erfahrenen Community, z.B. über eine digitale Plattform oder als eigenständige Abteilung, oder durch IT-Fachpersonal unterstützt. Diese Form der Anwendungsprogrammierung ähnelt den vom Project Management Institute vorgeschlagenen Competence Center oder Citizen Development Communities [@PMICitizenD, 1]. Für dieses Arbeitsmodell eignen sich stark abstrahierte Programmiersprachen und Entwicklungsumgebungen, die unter der Voraussetzung von IT-Grundkenntnissen bereits einen höheren Komplexitäts- und Funktionalitätsumfang anbieten.
Mutual- oder Co-Development beschreibt die nächsthöhere Stufe. Dabei wird die:der Fachexpert:in aktiv am Designprozess beteiligt. Dies kann beispielsweise durch den Einsatz von Storyboards oder anhand von „interactive prototyping“ geschehen [1]. Das eigentliche Programmieren einer Anwendung übernimmt in diesem Prozess größtenteils ein:e Softwareentwickler:in [1]. Die erfolgreiche Zusammenarbeit kann technisch mittels schneller visueller Darstellung des Prototyps unterstützt werden. Außerdem können an dieser Stelle einzelne Komponenten des Rapid Application Development (RAD) angeführt werden, darunter highly interactive, low complexity projects, RAD-Tools (GUI), Joint Application Design und Incremental Prototyping [2].
Die letzte Stufe stellt die klassische professionelle Softwareentwicklung dar. Diese garantiert technisch den größtmöglichen Handlungsspielraum und lässt somit das Programmieren komplexer Anwendungen zu. Durch den Einsatz schriftbasierter Programmiersprachen wird in der Regel jedoch die Zusammenarbeit – Kommunikation und Interaktion – zwischen Fach- und IT-Abteilung erschwert/potenziell behindert.
- Citizen Development/End-User-Development: Anwendung wird fast ausschließlich von Fachexpert:in konfiguriert (intuitive, sehr abstrakte Programmiersprache/Modell, stark eingeschränkter Funktionsumfang).
- Collaboration: Anwendung wird vorrangig von Fachexpert:in konfiguriert, in Zusammenarbeit mit einer Community (Kompetenzen unterschiedlich gelagert) oder mit Unterstützung der IT (weiterhin sehr abstrakte Programmiersprache – weniger intuitiv, IT-Grundverständnis notwendig).
- Mutual/Co-Development (RAD): Fachexpert:in unterstützt IT aktiv bei der Umsetzung der Anforderungen, Konfiguration liegt größtenteils bei IT (weiterhin sehr abstrakte Programmiersprache, IT- und Datenverstehen notwendig, höhere Flexibilität auch unter Codeeinsatz; schnelle visuelle Darstellung der „Ergebnisse“ zur Diskussion).
- Pro-Development: klassische Anwendungsentwicklung (max. Anpassungsmöglichkeiten durch zusätzlich individuell geschriebenen Code).